package org.fujb.demo.repository.vo;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 订单信息表
 * tb_order_info
 */
@Data
public class OrderVo implements Serializable {
    /**
     * 主键
     */
    private Long id;

    /**
     * 订单编号（唯一标识，建议使用UUID或业务规则生成）
     */
    private String orderNo;

    /**
     * 下单时间（自动记录创建时间）
     */
    private Date createTime;

    /**
     * 修改时间（自动记录最后更新时间）
     */
    private Date updateTime;

    /**
     * 订单金额（精确到分）
     */
    private Long amount;

    /**
     * 订单状态（0-待支付，1-已支付，2-已取消，3-已发货，4-已完成，5-已退款）
     */
    private Byte orderStatus;

    /**
     * 订单有效时间（超过此时间未支付则失效）
     */
    private Date validTime;

    /**
     * 收货人姓名
     */
    private String receiver;

    /**
     * 收货人电话
     */
    private String phone;

    /**
     * 收货地址
     */
    private String address;


    /**
     * 产品编号（关联产品表的唯一标识）
     */
    private String productNo;

    /**
     * 产品数量（大于0的整数）
     */
    private Integer productNum;

    /**
     * 产品单价（下单时的单价）
     */
    private Long productPrice;

    /**
     * 单品优惠金额（如单品折扣、满减）
     */
    private Long productDiscountAmount;

    /**
     * 单品实际金额（= 单价*数量 - 优惠金额）
     */
    private Long productActualAmount;

    /**
     * 单品原始金额（= 单价*数量）
     */
    private Long productAmount;

    /**
     * 优惠金额
     */
    private Long discountAmount;

    /**
     * 订单实际金额
     */
    private Long actualAmount;

    /**
     * 订单创建时间查询：起始时间
     */
    private Date startDate;


    /**
     * 订单创建时间查询：结束时间
     */
    private Date endDate;


    private static final long serialVersionUID = 1L;
}
